﻿/////////////////////////////////////////////////////////////////////////////////
///              ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO                   ///
///                        PROYECTO INTEGRADOR IV                             /// 
///                         PROYECTO SICOPS 2011                              /// 
/// ------------------------------------------------------------------------- ///  
///              **********GRUPO DE DESARROLLADORES**********                 ///
///                    ************PEGASO*************                        /// 
///---------------------------------------------------------------------------///
///                                                         RIOBAMBA-ECUADOR  ///
///---------------------------------------------------------------------------///
///                CLASE ADMINISTRACION DE LA TABLA DEPARTAMENTO              ///
/////////////////////////////////////////////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Windows.Forms;
using System.Data.Common;
using System.Drawing;
//Clase de administracioin para departamento
namespace LogisticaDeAcceso.ClasesDeAcceso
{
    public class clsDepartamento
    {
        private SqlCommand SqlProSeleccionar;
        private SqlConnection SqlProConexion;
        private SqlDataAdapter SqlProAdaptador;
       
        /// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// //////////////////////////////Configuracion del metodo para el ingreso de un departamento
       
        public void metConfiguracionInsertar(string Conexion)
        {
            this.SqlProSeleccionar = new SqlCommand();
            this.SqlProConexion = new SqlConnection();
            this.SqlProAdaptador = new SqlDataAdapter();

            this.SqlProConexion.ConnectionString = Conexion;
            // 
            // SqlProSeleccionar
            // 
            this.SqlProSeleccionar.CommandText = "dbo.sp_IngresarDepartamento";
            this.SqlProSeleccionar.CommandType = CommandType.StoredProcedure;
            this.SqlProSeleccionar.Connection = this.SqlProConexion;
            //Configuracion de los parametros
            this.SqlProSeleccionar.Parameters.AddRange(new SqlParameter[] {
            new SqlParameter("@RETURN_VALUE", SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, ((byte)(0)), ((byte)(0)), "", System.Data.DataRowVersion.Current, null),
            new SqlParameter("@Codigo", SqlDbType.VarChar, 10),
            new SqlParameter("@Nombre", SqlDbType.VarChar, 50),
            new SqlParameter("@NomCentro", SqlDbType.VarChar, 100),
            new SqlParameter("@Repre", SqlDbType.VarChar, 50),
            new SqlParameter("@Telefono", SqlDbType.VarChar, 10),
            new SqlParameter("@Ubicacion", SqlDbType.VarChar, 100)});
            // 
            // SqlProConexion
            // 
            this.SqlProAdaptador.SelectCommand = this.SqlProSeleccionar;
           
        }
        /// //////////////////////////////Activacion del metodo para el ingreso de un departamento
        public void metActivarInsertar(string Cod,string NomD,string NomC,string Repre,string Tele,string Ubi)
        {
            SqlProAdaptador.SelectCommand.Parameters["@Codigo"].Value = Cod;//Codigo departamento
            SqlProAdaptador.SelectCommand.Parameters["@Nombre"].Value = NomD;//Nombre departamento
            SqlProAdaptador.SelectCommand.Parameters["@NomCentro"].Value = NomC;//Codigo del centro 
            SqlProAdaptador.SelectCommand.Parameters["@Repre"].Value = Repre;//Nombre del representante
            SqlProAdaptador.SelectCommand.Parameters["@Telefono"].Value = Tele;//Telefono del depa
            SqlProAdaptador.SelectCommand.Parameters["@Ubicacion"].Value = Ubi;//Ubicacion de depa
            SqlProConexion.Open();
            try//Verifica si existio algun error
            {
                SqlProAdaptador.SelectCommand.ExecuteNonQuery();//Ejecutar el procedimiento 
            }
            catch (Exception auxMensaje)//El procedimiento tiene un mensaje que imprime si la clave es cambiada con exito
            {
                MessageBox.Show(auxMensaje.Message);
            }
            SqlProConexion.Close();
        }
        /// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ///  /// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ///   /// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// //////////////////////////////Configuracion del metodo para mostrar los departamentos registrados
        /// 
        public void metConfiguarMostraDe(string Conexion)
        {
            this.SqlProSeleccionar = new SqlCommand();
            this.SqlProConexion = new SqlConnection();
            this.SqlProAdaptador = new SqlDataAdapter();
            // SqlProConexion
            // 
            this.SqlProConexion.ConnectionString = Conexion;
            // 
            // SqlProSeleccionar
            // 
            this.SqlProSeleccionar.CommandText = "SELECT     vs_MostrarDepartamento.*\r\nFROM         vs_MostrarDepartamento";
            this.SqlProSeleccionar.Connection = this.SqlProConexion;
            // 
          
            // 
            // SqlProAdaptador
            // 
            this.SqlProAdaptador.SelectCommand = this.SqlProSeleccionar;
         
            // 
        }
        /// //////////////////////////////Activacion del metodo para mostrar los departamentos registrados
        public void metActivaMostrarDE(ColeccionDeDatos Col)
        {
            SqlProAdaptador.Fill(Col.vs_MostrarDepartamento);
        }

         /// /////Contar las filas metodo usado para la generacion de un codigo

        public int metNumeroFilasDE(ColeccionDeDatos Col)
        {
            DataTable Ta = Col.vs_MostrarDepartamento;
            DataRowCollection Val = Ta.Rows;
            return Val.Count;
        }
        /// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //////////////////////////////////////////////////////////////////////////////////////////////
        //////////////////////////////////////////////////////////////////////////////////////////////
        /////////////////////////////USO EXTERNO AL INGRESO///////////////////////////////////////////

        public void metConfiguracionMosValDep(string Conexion)
        {
            this.SqlProSeleccionar = new SqlCommand();
            this.SqlProConexion = new SqlConnection();
            this.SqlProAdaptador = new SqlDataAdapter();
            // 
            // SqlProSeleccionar
            // 
            this.SqlProSeleccionar.CommandText = "SELECT     vs_MostrarUnidadesAd.*\r\nFROM         vs_MostrarUnidadesAd";
            this.SqlProSeleccionar.Connection = this.SqlProConexion;
            // 
            // SqlProConexion
            // 
            this.SqlProConexion.ConnectionString = Conexion;
            // 
            // SqlProAdaptador
            // 
            this.SqlProAdaptador.SelectCommand = this.SqlProSeleccionar;
         
            // 
        }
        public void metActivarMosVlDep(ColeccionDeDatos Col)
        {
            //Mostrar departamentos registrados
            SqlProAdaptador.Fill(Col.vs_MostrarUnidadesAd);
        }
        /// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ///  /// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //genera una lista asiciada a un cierto centro de costos
        public void metConfiPresentarDepartamentos(string Conexion)
        {
            this.SqlProSeleccionar = new SqlCommand();
            this.SqlProConexion = new SqlConnection();
            this.SqlProAdaptador = new SqlDataAdapter();
            // 
            // SqlProSeleccionar
            // 
            this.SqlProSeleccionar.CommandText = "dbo.sp_MostraDepSeleccionados";
            this.SqlProSeleccionar.CommandType = CommandType.StoredProcedure;
            this.SqlProSeleccionar.Connection = this.SqlProConexion;
            //Declaracion delos parametros de ingreso para la configuracion del procedimiento
            this.SqlProSeleccionar.Parameters.AddRange(new SqlParameter[] {
            new SqlParameter("@RETURN_VALUE", SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, ((byte)(0)), ((byte)(0)), "", DataRowVersion.Current, null),
            new SqlParameter("@Centro", SqlDbType.VarChar, 60)});//parametro de busqueda
            // 
            // SqlProConexion
            // 
            this.SqlProConexion.ConnectionString = Conexion;
            // 
            // SqlProAdaptador
            // 
            this.SqlProAdaptador.SelectCommand = this.SqlProSeleccionar;
         
        }
        //Presenta los departamentos asociados a este centro de costos
        public void metActivarPresentarDep(string Cent,ColeccionDeDatos Aux)
        {
            SqlProAdaptador.SelectCommand.Parameters["@Centro"].Value = Cent;//Codigo del cedtro de costos
            SqlProAdaptador.Fill(Aux.sp_MostraDepSeleccionados);         
        }
        /// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ///  /// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //Metodo para modificar los datos del centro de costos
        public void metModificarDepartamento(string Conexion)
        {
            this.SqlProSeleccionar = new SqlCommand();
            this.SqlProConexion = new SqlConnection();
            this.SqlProAdaptador = new SqlDataAdapter();
            // 
            // SqlProSeleccionar
            // 
            this.SqlProSeleccionar.CommandText = "dbo.sp_ActualizarDepartamento";
            this.SqlProSeleccionar.CommandType = System.Data.CommandType.StoredProcedure;
            this.SqlProSeleccionar.Connection = this.SqlProConexion;
            //Configuracion de los parametros del procedimiento
            this.SqlProSeleccionar.Parameters.AddRange(new System.Data.SqlClient.SqlParameter[] {
            new SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, ((byte)(0)), ((byte)(0)), "", DataRowVersion.Current, null),
            new SqlParameter("@CodigoD", SqlDbType.VarChar, 15),
            new SqlParameter("@NombreD", SqlDbType.VarChar, 60),
            new SqlParameter("@Rep", SqlDbType.VarChar, 60),
            new SqlParameter("@Tele", SqlDbType.VarChar, 15),
            new SqlParameter("@Ubi", SqlDbType.VarChar, 150)});
            // 
            // SqlProConexion
            // 
            this.SqlProConexion.ConnectionString = Conexion; 
            // 
            // SqlProAdaptador
            // 
            this.SqlProAdaptador.SelectCommand = this.SqlProSeleccionar;
        }

        public void metActivarModificarDepartamento(string CodigoD,string NombreD,string Rep,string Tele,string Ubi)
        {
            SqlProAdaptador.SelectCommand.Parameters["@CodigoD"].Value = CodigoD;//Codigo departamento
            SqlProAdaptador.SelectCommand.Parameters["@NombreD"].Value = NombreD;//Nombre departamento
            SqlProAdaptador.SelectCommand.Parameters["@Rep"].Value = Rep;//Codigo del centro 
            SqlProAdaptador.SelectCommand.Parameters["@Tele"].Value = Tele;//Nombre del representante
            SqlProAdaptador.SelectCommand.Parameters["@Ubi"].Value = Ubi;//Telefono del depa
            SqlProConexion.Open();
            try//Verifica si existio algun error
            {
                SqlProAdaptador.SelectCommand.ExecuteNonQuery();//Ejecutar el procedimiento 
            }
            catch (Exception auxMensaje)//El procedimiento tiene un mensaje que imprime si la clave es cambiada con exito
            {
                MessageBox.Show(auxMensaje.Message);
            }
            SqlProConexion.Close();
        }


        //Metodo de eliminacion de un departamento
        //Noregistrdo
        public void metConfigurarEliminarDepa(string Conexion)
        {
            this.SqlProSeleccionar = new SqlCommand();
            this.SqlProConexion = new SqlConnection();
            this.SqlProAdaptador = new SqlDataAdapter();
            // 
            // SqlProSeleccionar
            // 
            this.SqlProSeleccionar.CommandText = "dbo.sp_EliminarDepartamento";
            this.SqlProSeleccionar.CommandType =CommandType.StoredProcedure;
            this.SqlProSeleccionar.Connection = this.SqlProConexion;
            this.SqlProSeleccionar.Parameters.AddRange(new SqlParameter[] {
            new SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4,ParameterDirection.ReturnValue, false, ((byte)(0)), ((byte)(0)), "", DataRowVersion.Current, null),
            new SqlParameter("@Codigo", System.Data.SqlDbType.VarChar, 20)});//Variable de ingreso del codigo
            // 
            // SqlProConexion
            // 
            this.SqlProConexion.ConnectionString = Conexion;
            // 
            // SqlProAdaptador
            // 
            this.SqlProAdaptador.SelectCommand = this.SqlProSeleccionar;
        }

        //Metodo que activa el procedimiento almacenado para eliminar
        public void metActivarEliminarDepa(string Codigo)
        {
            SqlProAdaptador.SelectCommand.Parameters["@Codigo"].Value = Codigo;//Codigo departamento
            SqlProConexion.Open();
            try//Verifica si existio algun error
            {
                SqlProAdaptador.SelectCommand.ExecuteNonQuery();//Ejecutar el procedimiento 
            }
            catch (Exception auxMensaje)//El procedimiento tiene un mensaje que imprime si la clave es cambiada con exito
            {
                MessageBox.Show(auxMensaje.Message);
            }
            SqlProConexion.Close();
        }
        //Cofiguracion y activacion de la modificacion de caentros de costos
        public void metConfiguracionMostraDatModificar(string Conexion)
        {
            this.SqlProSeleccionar = new System.Data.SqlClient.SqlCommand();
            this.SqlProAdaptador = new System.Data.SqlClient.SqlDataAdapter();
            this.SqlProConexion = new System.Data.SqlClient.SqlConnection();
            // 
            // SqlProSeleccionar
            // 
            this.SqlProSeleccionar.CommandText = "dbo.sp_MostrarDepParaModoficacion";
            this.SqlProSeleccionar.CommandType = System.Data.CommandType.StoredProcedure;
            this.SqlProSeleccionar.Connection = this.SqlProConexion;
            this.SqlProSeleccionar.Parameters.AddRange(new System.Data.SqlClient.SqlParameter[] {
            new System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, false, ((byte)(0)), ((byte)(0)), "", System.Data.DataRowVersion.Current, null),
            new System.Data.SqlClient.SqlParameter("@Codigo", System.Data.SqlDbType.VarChar, 200)});
            // 
            // SqlProAdaptador
            // 
            this.SqlProAdaptador.SelectCommand = this.SqlProSeleccionar;
        
            // SqlProConexion
            // 
            this.SqlProConexion.ConnectionString = Conexion;
        }

        public void metActivarMostrarDatModificar(string Codigo, ColeccionDeDatos Col)
        {
            SqlProAdaptador.SelectCommand.Parameters["@Codigo"].Value = Codigo;
            SqlProAdaptador.Fill(Col.sp_MostrarDepParaModoficacion);
        }
                
        /// /////////////////////////////////////////////////////////////////////////////////
     
        public void metMostrarCentroUnicos(string Conexion)
        {
            this.SqlProSeleccionar = new SqlCommand();
            this.SqlProAdaptador = new SqlDataAdapter();
            this.SqlProConexion = new SqlConnection();
            // 
            // SqlProSeleccionar
            // 
            this.SqlProSeleccionar.CommandText = "SELECT        vs_MostrarCentroDeCostosUnicos.*\r\nFROM            vs_MostrarCentroD" +
                "eCostosUnicos";
            this.SqlProSeleccionar.Connection = this.SqlProConexion;
            // 
            // SqlProAdaptador
            // 
            this.SqlProAdaptador.SelectCommand = this.SqlProSeleccionar;
           
            // 
            // SqlProConexion
            // 
            this.SqlProConexion.ConnectionString = Conexion;
        }
        //Mostrar los centros de costos que se an registrado un vez
        public void metActivarMostrarCentroUnicos(ColeccionDeDatos Col)
        {
            SqlProAdaptador.Fill(Col.vs_MostrarCentroDeCostosUnicos);
        }
    }

}
